The invention relates to a method described in the preamble of the attached claim 1 for data flow control in connection with layered communication protocols. In principle, the invention can be applied to any layered communication protocol, although it is preferably used in a system operating in accordance with the OSI model.
The Open Systems Interconnection reference model (OSI) is a standard created by the International Standards Organization (ISO) and it describes the concepts used to define communication between computers. Systems operating in accordance with the OSI model are called open systems.
An open reference model defines the structure and functions of the communicating system. The structure is based on logical parts, i.e. layers, totalling seven, as shown in FIG. 1. The functions are divided into functions between devices on the same layer whose definitions are called protocols, and functions, or services, inside the devices between successive layers. The idea of a layered structure is that changes in one layer do not cause changes in any other layers. Hence layer specific standards may be developed independently.
An individual layer in the OSI model utilizes the services offered by a lower layer, processes them and offers its own services to upper layers. Two entities of layer (N), physically located in different devices, communicate using the protocol of that particular layer. Such entities are called peer entities.
FIG. 2 illustrates the interlayer operation in the OSI model. Entities in layer (N+1) obtain layer (N) services via layer (N) Service Access Points, (N)-SAP. Entity (N+1) may be simultaneously linked to one or more (N)-SAPs, which in turn are linked to one entity (N), i.e. only one entity of the layer is visible from one service access point.
Two peer entities in different devices communicate by exchanging data units PDU conforming with the layer (N) protocol. These units comprise Protocol Control Information, PCI, conforming with the layer (N) protocol, and layer (N) user data. Since PDUs are transferred between systems in the bit stream of the physical connection, each PDU needs a definition of its presentation as a bit string.
In transmission from layer (N+1) to layer (N), (N+1)-PDUs are disassembled (assembled in a reverse transmission direction) into (N) Service Data Units, (N)-SDU, which are transferred across the interlayer interface in layer (N) Interface Data Units (N)-IDU. An (N)-IDU comprises Interface Control Information (N)-ICI and a whole (N)-SDU or a part thereof. The interface data unit (N)-IDU is transferred via the (N)-SAP to layer (N) where it is again disassembled into a part of the (N)-SDU and ICI.
In layer (N) the (N)-SDU can be divided into one or more N-PDUs as (N) user data. If layer (N) does not disassemble the SDU obtained from layer (N+1) into several layer (N) PDUs, one layer (N) PDU corresponds to an SDU obtained from a higher layer.
The services offered by layer (N) to an upper layer are visible via the service point (N)-SAP. These interlayer services are abstract functions independent of the implementation, and called service primitives. (N) service primitives can be implemented as e.g. a group of interface data units (N)-IDU.
In the above the OSI model has been described in order to facilitate understanding the description presented below and the problem behind the invention. Since the actual invention is not associated with the OSI model proper, it will not be described in more detail here. The OSI model has been described e.g. in reference Leena Jaakonmxc3xa4 ki: Lxc3xa4 hiverkko-opas, ISBN 951-762-159-0, chapter 2.2.1, where the reader may find a more detailed description of the subject matter.
Most protocol layer service interfaces of the OSI or any other layer model do not define the mechanisms for controlling the flow of SDUs across the service interface. That is, neither the user of the service nor its provider has a defined way of refusing to receive SDUs or to limit their number. However, in most cases this function has to be implemented somehow or other (or the lack thereof has to be allowed for).
Methods used in known implementations vary widely. If there is interlayer flow control, it is usually rather primitive. As an example my be given a primitive used to notify one party that no more SDUs can be received (causing a total stop to the operation of the transmitting layer). The same or another primitive is used to notify that SDUs can again be received. This method is quite clumsy and ineffective in architectures where interlayer communication is asynchronous (i.e. the receiving layer performs buffering), and the effect of the primitive is not immediate. Known methods based on acknowledgement are also ineffective since the required acknowledgements essentially increase the amount of traffic.
It is an object of this invention to accomplish an improvement to the above drawback by providing a new kind of method for flow control in asynchronous data transmission between two successive layers. This object is achieved with the method of the invention, which is characterized by what is set forth in the characterizing part of the attached claim 1.
The idea of the invention is to apply the xe2x80x9csliding windowxe2x80x9d method to interlayer flow control, characterized by communication between entities of the same layer in two physically separate devices, i.e. end systems. The solution of the invention is based on the idea that, due to buffering delay, interlayer communication is similar to peer-to-peer communication inside layers if interlayer communication is asynchronous.
The solution of the invention provides an easy way to allow for interlayer delays and buffering of primitives. At the same time it is possible to use also the SDU acknowledgement mechanism, useful in e.g. memory management.